class Solution {
public:
    bool check(vector<int>& nums)
    {
        for(int i=0;i<3;i++)
        {
            if(nums[i]==0)
                return false;
        }
        return true;
    }
    int numberOfSubstrings(string s) {
        int n=s.size();
        int ans=0;
        vector abc(3,0);
        int i=0;
        int j=0;
        while(i<n)
        {
            while(j<n && !check(abc))
            {
                abc[s[j++]-'a']++;
            }
            if(!check(abc))
                break;
            ans+=(n-1-j+1+1);//只要符合了，不管怎么滑动都是子串
            abc[s[i]-'a']--;
            i++;
        }
        return ans;

    }
};